1. Field of the Invention
The present invention relates to image processing employing a processor that is capable of executing an SIMD (Single Instruction Multiple Data) command, and, more particularly to improvement of processing efficiency in performing the image processing.
2. Description of the Related Art
In performing color conversion processing, there is a method of, when contents of the processing cannot be represented by a formula or when the contents can be represented by a formula but the formula is too complicated, associating a relation of input and output of the color conversion processing with an LUT (Look Up Table).
In general, input values in image processing are three variables represented by “R”, “G”, and “B”. The numbers of gradations are often represented in 8 bits (256 values), respectively. When it is attempted to hold output values after the processing in a data table with respect to all values that such input values can take, this results in an enormous volume of data of the output values.
Therefore, a table interpolation method of reducing a table volume by combining interpolation processing for an output color space on the premise of continuity of a color change is used. The table interpolation method is a method of performing three-dimensional interpolation calculation using the number of near points of an output value corresponding to an arbitrary input value to obtain an output value. As this table interpolation method, an “eight-point interpolation method”, a “four-point interpolation method”, a “six-point interpolation method”, and the like are known according to the number of near points used.
In recent years, multimedia apparatuses that input and output image data at high speed to perform image processing have been developed. A high-speed processing ability is demanded in order to realize color conversion processing in such multimedia apparatuses. In recent years, in order to make it possible to execute multimedia processing such as color conversion processing at high speed, a command called an SIMD (Single Instruction Multiple Data) command that can execute an integer arithmetic, a floating point arithmetic, and the like in parallel is implemented in a general-purpose processor. However, the SIMD command is good at executing plural kinds of arithmetic processing in parallel with one command but cannot execute, in parallel, memory random access processing for simultaneously referring to plural data of LUT data stored in a memory area.
For example, when interpolation processing according to the eight-point interpolation method is performed, it is necessary to read out color conversion values for eight points from an LUT for each color component of input values. Usually, it is necessary to perform memory Read processing twenty-four times (8×3=24). Therefore, even if it is possible to increase speed of the arithmetic processing such as the interpolation processing by performing the SIMD processing, it is impossible to increase speed of memory access processing at the time of LUT reference. Consequently, it is impossible to sufficiently reduce processing time for the entire color conversion processing regardless of the fact that the SIMD processing is used.